Analysis date: 2023-02-07

Depends on

CRC_Xenografts_FirstBatch_DataProcessing Script

#set.seed(2022)
load("../Data/Cache/Xenografts_Batch1_2_DataProcessing.RData")

Setup

Load libraries

Functions

General

source("../../../General/Code/Analysis_Functions.R")
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.5 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::collapse()   masks IRanges::collapse()
## ✖ dplyr::combine()    masks Biobase::combine(), BiocGenerics::combine()
## ✖ dplyr::count()      masks matrixStats::count()
## ✖ dplyr::desc()       masks IRanges::desc()
## ✖ tidyr::expand()     masks S4Vectors::expand()
## ✖ dplyr::filter()     masks stats::filter()
## ✖ dplyr::first()      masks S4Vectors::first()
## ✖ dplyr::lag()        masks stats::lag()
## ✖ purrr::map()        masks kohonen::map()
## ✖ ggplot2::Position() masks BiocGenerics::Position(), base::Position()
## ✖ purrr::reduce()     masks GenomicRanges::reduce(), IRanges::reduce()
## ✖ dplyr::rename()     masks S4Vectors::rename()
## ✖ dplyr::select()     masks AnnotationDbi::select()
## ✖ dplyr::slice()      masks IRanges::slice()
source("CRC_Xenografts_Batch1_Functions.R")

SOMs

Train_SOM <- function(phos_mat, try.k){
  ## define a grid for the SOM and train
  grid.size <- ceiling(nrow(phos_mat ) ^ (1/2.5))
  som.grid <- somgrid(xdim = grid.size, ydim = grid.size, topo =   'hexagonal', toroidal = T)
  som.model <- som(data.matrix(phos_mat ), grid = som.grid)
  
  ## extract some data to make it easier to use
  som.events <- som.model$codes[[1]]
  #som.events.colors <- rgb(som.events[,1], som.events[,2],   som.events[,3], maxColorValue = 255)
  som.dist <- as.matrix(dist(som.events))
  
  
  plot(som.model, type = 'mapping', cex=0.2)
  plot(som.model, type="changes")
  plot(som.model, type = 'count')
  plot(som.model, type="dist.neighbours")
  # plot(som.model, type="codes") 
  # dev.off()
  #plot(som.model, type = "property", property = som.model$codes[,4],   main=names(som.model$data)[4]#, palette.name=coolBlueHotRed
  
  #try.k <- 2:100
  cluster.dist.eval <- as.data.frame(matrix(ncol = 3, nrow = (length(try.k))))
  colnames(cluster.dist.eval) <- c('k', 'kmeans', 'hclust')
  
  for(i in 1:length(try.k)) {
    cluster.dist.eval[i, 'k'] <- try.k[i]
    cluster.dist.eval[i, 'kmeans'] <- Cluster_Mean_Dist(kmeans(som.events, centers   = try.k[i], iter.max = 20)$cluster, som.dist = som.dist)
    cluster.dist.eval[i, 'hclust'] <-   Cluster_Mean_Dist(cutree(hclust(vegan::vegdist(som.events)), k = try.k[i]),   som.dist = som.dist)
  }
  
  plot(cluster.dist.eval[, 'kmeans'] ~ try.k,
       type = 'l')
  
  lines(cluster.dist.eval[, 'hclust'] ~ try.k,
        col = 'red')
  
  legend('topright',
         legend = c('k-means', 'hierarchical'),
         col = c('black', 'red'),
         lty = c(1, 1))
  
  return(list( som.model, som.events ))
}

## Define a function to calculate mean distance within each cluster.  This
## is roughly analogous to the within clusters ss approach
Cluster_Mean_Dist <- function(clusters, som.dist){
  cluster.means = c()
  
  for(c in unique(clusters)){
    temp.members <- which(clusters == c)
    
    if(length(temp.members) > 1){
      temp.dist <- som.dist[temp.members,]
      temp.dist <- temp.dist[,temp.members]
      cluster.means <- append(cluster.means, mean(temp.dist))
    }else(cluster.means <- 0)
  }
  
  return(mean(cluster.means))
  
}

Plot_Colored_SOM <- function(som.model, clusters, type = "mapping", cl = 40){
  plot(som.model, 
       type = type, 
       pchs = 21, 
       cex=0.2,
       col = "black",
       #bg = c("blue" , "red", "yellow", "green")[as.factor(str_remove(str_split( rownames(som.model$data[[1]]), "-", simplify = T )[,1], "log2FC_")) ] , 
       keepMargins = F,
       bgcol = c(RColorBrewer::brewer.pal(12, "Set3"), RColorBrewer::brewer.pal(9, "Set1"), RColorBrewer::brewer.pal(8, "Set2"), RColorBrewer::brewer.pal(9, "Pastel1"), RColorBrewer::brewer.pal(8, "Dark2"))[clusters]  )
  
    add.cluster.boundaries(som.model, clusters)
}

Asign_To_Clusters <- function(som.model, clusters){
  cluster_classification <- som.model$unit.classif
  names(cluster_classification) <- rownames(som.model$data[[1]])
  classification <- clusters[cluster_classification]
  names(classification) <- rownames(som.model$data[[1]])
  classification
}

Get_Members_Of_One_Cluster <- function(som.model, clusters, n){
  message(paste("Cluster" , n ))
  asign <- Asign_To_Clusters(som.model, clusters)
  names(asign[asign == n])
}

Get_Mat_With_Assigned_Clusters <- function(som.model, clusters, phos_mat ){
  som.cluster.asignedclusters <- Asign_To_Clusters(som.model = som.model, 
                 clusters = clusters) 
  
  phos_mat_t <- as.data.frame( t(phos_mat) )
  phos_mat_t$cluster <-   som.cluster.asignedclusters[rownames(phos_mat_t)]
    
  phos_mat_t <- phos_mat_t %>%
      rownames_to_column( "peptide") %>%
      pivot_longer(-c(peptide, cluster), names_to = "sample", values_to = "log2FC")   %>%
      mutate(sample = gsub( "log2FC_", "", sample)) %>%
      separate( sample , into = c("xenograft", "treatment", "day", "replicate", "set"), sep = "_", remove = F) %>%
      separate(peptide, into = c("HGNC_Symbol", "Annotated_Sequence"), sep = "_",   remove = F ) %>%
      mutate(treatment = as.factor(treatment)) 
  return(phos_mat_t)
}

Plot_Profiles_SOM_clusters <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
    phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
    phos_mat_t <- phos_mat_t
  
  mean_per_type <- 
    phos_mat_t %>%
    group_by(sample, treatment) %>%
    summarise(log2FC= median(log2FC)) %>%
    ungroup() %>%
    group_by(treatment) %>%
    summarise(mean_log2FC = mean(log2FC)) %>%
    ungroup() %>%
    column_to_rownames("treatment") %>% 
    t %>% as_tibble()
  
  if(specific_cluster){
    phos_mat_t <- phos_mat_t %>% 
      filter(cluster==specific_cluster)
  }
  
  phos_mat_t %>% 
    filter(!is.na(cluster)) %>%
    mutate(treatment = as.factor(treatment)) %>%
    mutate(treatment = factor(treatment, levels = c("ctrl", "E", "EC", "EBC"))) %>%
      #filter(cluster==19) %>%
      ggplot(aes( sample, log2FC, fill = treatment, group = peptide )) +
      geom_line(alpha = 0.3) +
      theme_bw() +
      theme(axis.text.x = element_text(angle = 90),
            axis.title.x = element_blank()) +
      scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
      facet_wrap(~cluster, ncol = ncol_grid) +
      geom_hline(col = PGPalette[5], yintercept = mean_per_type$ctrl) +
      geom_hline(col = PGPalette[1], yintercept = mean_per_type$E) +
      geom_hline(col = PGPalette[2], yintercept = mean_per_type$EC) +
      geom_hline(col = PGPalette[4], yintercept = mean_per_type$EBC) +
    geom_point(alpha = 0.3, aes(col = treatment), size = 0.4)
}

Plot_Profiles_SOM_Clusters_Splitbyday <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
    phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
    phos_mat_t <- phos_mat_t
  
  if(specific_cluster){
    phos_mat_t <- phos_mat_t %>% 
      filter(cluster==specific_cluster)
  }
  
  phos_mat_t %>% 
    filter(!is.na(cluster)) %>%
      #filter(cluster==19) %>%
      mutate(prep = unlist(prep_l[sample]), 
             treatment = as.factor(treatment) ) %>%
    mutate(treatment = factor(treatment, levels = c("ctrl", "E", "EC", "EBC"))) %>%
      group_by(treatment, day, sample, cluster) %>%
      summarise(log2FC= mean(log2FC)) %>%
      ungroup() %>%
      ggplot(aes( treatment, log2FC, fill = treatment )) +
      geom_boxplot(outlier.size = 0) +
      theme_bw() +
      scale_fill_manual(values = PGPalette[c(5,1,2,4)]) +
      facet_wrap(~cluster+day) +
      ggpubr::stat_compare_means() +
      ggbeeswarm::geom_beeswarm()
}

Plot_Profiles_SOM_clusters_day <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
    phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
    phos_mat_t <- phos_mat_t
  
  if(specific_cluster){
    phos_mat_t <- phos_mat_t %>% 
      filter(cluster==specific_cluster)
  }
  
  phos_mat_t %>% 
    filter(!is.na(cluster)) %>%
      #filter(cluster==19) %>%
      mutate(prep = unlist(prep_l[sample]) ) %>%
      ggplot(aes( sample, log2FC, fill = day, group = peptide )) +
      geom_line(alpha = 0.3) +
      theme_bw() +
      theme(axis.text.x = element_text(angle = 90),
            axis.title.x = element_blank()) +
      scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
      facet_wrap(~cluster, ncol = ncol_grid) +
    geom_point(alpha = 0.3, aes(col = day), size = 0.4)
}

Plot_Profiles_SOM_clusters_day_sorted_by_day <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
    phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
    phos_mat_t <- phos_mat_t
  
  if(specific_cluster){
    phos_mat_t <- phos_mat_t %>% 
      filter(cluster==specific_cluster)
  }
  
  phos_mat_t <- phos_mat_t %>% 
    filter(!is.na(cluster)) %>%
      #filter(cluster==19) %>%
      mutate(prep = unlist(prep_l[sample]) )
  order_prep <- phos_mat_t %>%
    arrange( day, treatment, prep ) %>%
    .$sample
  phos_mat_t %>% 
      mutate(sample = as.factor(sample)) %>%
      mutate(sample = factor(sample, levels = unique(order_prep)) ) %>%
      ggplot(aes( sample, log2FC, fill = day, group = peptide )) +
      geom_line(alpha = 0.3) +
      theme_bw() +
      theme(axis.text.x = element_text(angle = 90),
            axis.title.x = element_blank()) +
      scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
      facet_wrap(~cluster, ncol = ncol_grid) +
    geom_point(alpha = 0.3, aes(col = day), size = 0.4)
}

Confusion_Matrix <- function(cluster){
  as.data.frame(Asign_To_Clusters(som.model.pat, cluster) ) %>% 
  rownames_to_column("sample") %>% 
  separate(sample, sep = "_", into = c("log2FC", "xenograft", "treatment", "day", "replicate", "set" )  ) %>%
  select(-day, -set, -xenograft, -log2FC, -replicate) %>%
  table
}


Confusion_Matrix_Prep <- function(cluster){
  as.data.frame(Asign_To_Clusters(som.model.pat, cluster) ) %>% 
  rownames_to_column("sample") %>% 
  mutate(prep = unlist( prep_l[ gsub("log2FC_", "", sample)]) ) %>%
  separate(sample, sep = "_", into = c("log2FC", "xenograft", "treatment", "day", "replicate", "set" )  ) %>%
  select(-day, -set, -xenograft, -log2FC, -replicate, -treatment) %>%
  table
}

StringDB

Plot_StringDB <- function(hits){
  hits <- as.data.frame(hits)
  colnames(hits) <- "HGNC_Symbol"
  hits_mapped <- string_db$map( hits, "HGNC_Symbol", removeUnmappedRows = TRUE )
  string_db$plot_network( hits_mapped)
}

SOMs

Peptide - pY

train the SOM

som.pept.pY <- Train_SOM(phos_mat= t(pY_mat_Set2), try.k = 2:40)

som.model.pept.pY <- som.pept.pY[[1]]
som.events.pept.pY <- som.pept.pY[[2]]

evaluate clustering algorithms

## Having selected a reasonable value for k, evaluate different clustering algorithms.

## Try several different clustering algorithms, and, if desired, different values for k
cluster.tries.pept.pY <- list()

for(k in c(3,4,5, 10, 15, 25)){
  ## k-means clustering
  
  som.cluster.k <- kmeans(som.events.pept.pY, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
  
  ## hierarchical clustering
  
  som.dist.pept <- dist(som.events.pept.pY) # hierarchical, step 1
  som.cluster.h <- cutree(hclust(som.dist.pept), k = k) # hierarchical, step 2
  
  ## capture outputs
  cluster.tries.pept.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
  cluster.tries.pept.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}

## Take a look at the various clusters.  You're looking for the algorithm that produces the
## least fragmented clusters.

message("k10")
## k10
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.k.10, cl = 25)

message("k15")
## k15
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.k.15, cl = 25)

message("k29")
## k29
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.k.25, cl = 25)

#cluster.tries.pept.pY$som.cluster.k.20

message("Members in each cluster (k15):")
## Members in each cluster (k15):
sort(table(Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.15))) 
## 
## 11  4  9 12 15  8  7 13  6  2 10  3 14  5  1 
## 16 21 21 24 24 25 36 38 43 54 54 57 65 70 79
message("Members in each cluster (k29):")
## Members in each cluster (k29):
sort(table(Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.25))) 
## 
## 14  2 22  5 20 25  1  3  9 23 13  4 11  8  6 24 19 12 16 17 10 21 15 18  7 
##  4  7  8  9  9  9 10 12 13 13 14 16 19 21 22 22 28 32 40 41 45 45 54 66 68
message("h3")
## h3
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.h.3, cl = 5)

message("h4")
## h4
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.h.4, cl = 5)

message("h5")
## h5
Plot_Colored_SOM(som.model.pept.pY, 
                 cluster.tries.pept.pY$som.cluster.h.5, cl = 5)

Abundance across all peptides

t(pY_mat_Set2) %>%
  as.data.frame(  ) %>%
  rownames_to_column( "peptide") %>%
  pivot_longer(-peptide, names_to = "sample", values_to = "log2FC") %>%
  mutate(sample = gsub( "log2FC_", "", sample)) %>%
  separate( sample , into = c("xenograft", "treatment", "day", "replicate", "set"), sep = "_", remove = F) %>%
  separate(peptide, into = c("HGNC_Symbol", "Annotated_Sequence"), sep =   "_", remove = F ) %>%
  group_by(sample, treatment, day, set, replicate) %>%
  summarise("Mean of cluster" = mean(log2FC)) %>%
  ungroup() %>%
  mutate(treatment = as.factor(treatment)) %>%
  ggplot(aes( treatment, `Mean of cluster`, fill = treatment )) +
  geom_boxplot(outlier.size = 0) +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 90),
  axis.title.x = element_blank()) +
  scale_fill_manual(values = PGPalette[c(5,1,2,4)]) +
  ggbeeswarm::geom_beeswarm() +
  ggpubr::stat_compare_means()
## `summarise()` has grouped output by 'sample', 'treatment', 'day', 'set'. You
## can override using the `.groups` argument.

Analysis clusters

k 15

Profiles for all clusters
Plot_Profiles_SOM_clusters(som.model = som.model.pept.pY,
                           clusters = cluster.tries.pept.pY$som.cluster.k.15,
                           phos_mat = pY_mat_Set2)
## `summarise()` has grouped output by 'sample'. You can override using the
## `.groups` argument.

Plot_Profiles_SOM_Clusters_Splitbyday(som.model = som.model.pept.pY,
                           clusters = cluster.tries.pept.pY$som.cluster.k.15,
                           phos_mat = pY_mat_Set2)
## `summarise()` has grouped output by 'treatment', 'day', 'sample'. You can
## override using the `.groups` argument.

Plot_Profiles_SOM_Clusters_Splitbyday(som.model = som.model.pept.pY,
                           clusters = cluster.tries.pept.pY$som.cluster.k.15,
                           phos_mat = pY_mat_Set2, 
                           specific_cluster = 9)
## `summarise()` has grouped output by 'treatment', 'day', 'sample'. You can
## override using the `.groups` argument.

k15cl_pY <- Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.15)
k15cl_pY[k15cl_pY == 9]
##                PLCG1_ACyRDMSSFPETK     NCOA4_ANEPCTsFAECVCDENCEKEALyK 
##                                  9                                  9 
## GRB2_DIEQVPQQPTyVQALFDFDPQEDGELGFR                     RET_DVyEEDSYVK 
##                                  9                                  9 
##                    RET_DVyEEDsYVKR                    RET_DVyEEDSYVKR 
##                                  9                                  9 
##   RIN1_EKPAQDPLyDVPNASGGQAGGPQRPGR              SHC1_ELFDDPSyVNVQNLDK 
##                                  9                                  9 
##              JAK2_EVGDyGQLHETEVLLK                 PIK3R2_EYDQLYEEyTR 
##                                  9                                  9 
##           PGAM1_FSGWyDADLSPAGHEEAK          PGAM1_FSGWyDADLSPAGHEEAKR 
##                                  9                                  9 
##          MAPK3_IADPEHDHTGFLtEyVATR              PLCG1_NPGFyVEANPMPTFK 
##                                  9                                  9 
##             JAK2_REVGDyGQLHETEVLLK                DSP_SAIyQLEEEYENLLK 
##                                  9                                  9 
##                 CILK1_SKPPYtDyVSTR        GAB1_SSGSGSSVADERVDyVVVDQQK 
##                                  9                                  9 
##          MAPK1_VADPDHDHTGFLtEyVATR             VAV1_VGWFPANYVEEDYSEyC 
##                                  9                                  9 
##                   HSPE1_VLLPEyGGTK 
##                                  9
# PLSDA pY comp1
k15cl_pY[which(grepl("RET", names(k15cl_pY) )) ]
##            RET_ADGTNTGFPRyPNDSVYANWMLSPSAAK 
##                                           2 
##                              RET_DVyEEDSYVK 
##                                           9 
##                              RET_DVYEEDSyVK 
##                                           6 
##                             RET_DVyEEDsYVKR 
##                                           9 
##                             RET_DVyEEDSYVKR 
##                                           9 
##                             RET_DVYEEDSyVKR 
##                                           4 
##                     RET_LyGMSDPNWPGESPVPLTR 
##                                           5 
##  RET_RDyLDLAASTPSDSLIYDDGLSEEETPLVDCNNAPLPR 
##                                           6 
## RET_RRDyLDLAAsTPSDSLIYDDGLSEEETPLVDCNNAPLPR 
##                                           8 
## RET_RRDyLDLAASTPSDSLIYDDGLsEEETPLVDCNNAPLPR 
##                                           8 
## RET_RRDyLDLAASTPSDSLIYDDGLSEEETPLVDCNNAPLPR 
##                                           6 
##                            RET_VGPGyLGSGGSR 
##                                          11 
##                      RET_YPNDSVyANWMLSPSAAK 
##                                          15

h 5

Profiles for all clusters
Plot_Profiles_SOM_clusters(som.model = som.model.pept.pY,
                           clusters = cluster.tries.pept.pY$som.cluster.h.5,
                           phos_mat = pY_mat_Set2)
## `summarise()` has grouped output by 'sample'. You can override using the
## `.groups` argument.

Plot_Profiles_SOM_Clusters_Splitbyday(som.model = som.model.pept.pY,
                           clusters = cluster.tries.pept.pY$som.cluster.h.5,
                           phos_mat = pY_mat_Set2)
## `summarise()` has grouped output by 'treatment', 'day', 'sample'. You can
## override using the `.groups` argument.

h5cl_pY <- Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.h.5)
message("Cluster 1")
## Cluster 1
names(h5cl_pY[h5cl_pY == 1])
##   [1] "ENO1_AAVPSGASTGIyEALELRDNDK"        
##   [2] "ACTR3_AEPEDHyFLLTEPPLNTPENR"        
##   [3] "DSP_AESGPDLRyEVTSGGGGTSR"           
##   [4] "WDR1_AHDGGIyAISWSPDSTHLLSASGDK"     
##   [5] "MYH9_ALELDSNLyR"                    
##   [6] "NCOA4_ANEPCTSFAECVCDENCEKEALyK"     
##   [7] "PFKL_CHDyYTTEFLYNLYSSEGK"           
##   [8] "PSMB5_DAySGGAVNLYHVR"               
##   [9] "PSMB5_DAYSGGAVNLyHVR"               
##  [10] "SRL_DIVEDPDKFyIFK"                  
##  [11] "FLNB_DLDIIDNYDySHTVK"               
##  [12] "LDHA_DQLIyNLLKEEQTPQNK"             
##  [13] "PIK3R1_DQyLMWLTQK"                  
##  [14] "CRK_DSSTSPGDyVLSVSENSR"             
##  [15] "ARPC3_DTDIVDEAIyYFK"                
##  [16] "RPS12_DVIEEyFK"                     
##  [17] "PARD3_DVTIGGSAPIyVK"                
##  [18] "DLG1_DyHFVTSR"                      
##  [19] "PRKCD_DySNFDQEFLNEK"                
##  [20] "AGL_EAMSAyNSHEEGR"                  
##  [21] "ATP5F1A_EAYPGDVFyLHSR"              
##  [22] "PIK3C2B_ENTHEATyIQR"                
##  [23] "MYH1_ESIFCIQyNVR"                   
##  [24] "ARPC3_ETKDTDIVDEAIyYFK"             
##  [25] "ELMO2_EVCDGWSLPNPEyYTLR"            
##  [26] "DCBLD2_EVTTVLQADSAEyAQPLVGGIVGTLHQR"
##  [27] "SND1_EyGMIYLGK"                     
##  [28] "VIM_FANyIDK"                        
##  [29] "EPHB2_FLEDDTSDPTyTSALGGK"           
##  [30] "GSTP1_FQDGDLTLyQSNTILR"             
##  [31] "SLC38A2_FSISPDEDSSSySSNSDFNYSYPTK"  
##  [32] "BCR_GHGQPGADAEKPFyVNVEFHHER"        
##  [33] "MAPK7_GLCTSPAEHQYFMTEyVATR"         
##  [34] "ENO2_GNPTVEVDLyTAK"                 
##  [35] "RPL13A_GPyHFR"                      
##  [36] "PTBP1_GQPIyIQFSNHK"                 
##  [37] "DSP_GVITDQNSDGyCQTGTMSR"            
##  [38] "RNPS1_GyAYVEFENPDEAEK"              
##  [39] "MAPK13_HADAEMTGyVVTR"               
##  [40] "CCT8_HFSGLEEAVyR"                   
##  [41] "RASSF1_HGQVyLR"                     
##  [42] "JUP_HVAAGTQQPyTDGVR"                
##  [43] "PITPNA_HVEAVyIDIADR"                
##  [44] "C11orf52_HVHLENATEyATLR"            
##  [45] "BPGM_HyGALIGLNR"                    
##  [46] "MAPK3_IADPEHDHTGFLTEyVATR"          
##  [47] "PGM1_IALyETPTGWK"                   
##  [48] "TTN_IDQLQEGCSYyFR"                  
##  [49] "MAGI1_IEDPVyGIYYVDHINR"             
##  [50] "CDK1_IEKIGEGTyGVVYK"                
##  [51] "CDK5_IGEGTyGTVFK"                   
##  [52] "HSPD1_IQEIIEQLDVTTSEyEKEK"          
##  [53] "PTPN11_IQNTGDyYDLYGGEK"             
##  [54] "TARS1_IyGISFPDPK"                   
##  [55] "SKAP2_IyQFTAASPK"                   
##  [56] "PACS1_IySLSSQPIDHEGIK"              
##  [57] "PKM_IyVDDGLISLQVK"                  
##  [58] "DOCK4_KEyAMVDPEDISITELYR"           
##  [59] "PSMB8_KGPGLyYVDEHGTR"               
##  [60] "PHB1_KLEAAEDIAyQLSR"                
##  [61] "PIK3CB_KQPYyYPPFDK"                 
##  [62] "POTEJ_LCyVALDFEQEMAMVASSSSLEK"      
##  [63] "TAX1BP1_LELAEVQDNyK"                
##  [64] "TAX1BP1_LELAEVQDNyKELK"             
##  [65] "KRT10_LENEIQTyR"                    
##  [66] "ABL1_LGGGQYGEVyEGVWKK"              
##  [67] "ITSN2_LIyLVPEK"                     
##  [68] "TYK2_LLAQAEGEPCyIR"                 
##  [69] "NCOA4_LLFQSyNVNDWLVK"               
##  [70] "JUP_LNyGIPAIVK"                     
##  [71] "PIK3R3_LQEYHSQyQEK"                 
##  [72] "PEBP1_LyEQLSGK"                     
##  [73] "DYRK3_LYTyIQSR"                     
##  [74] "HDLBP_MDyVEINIDHK"                  
##  [75] "PREP_MTELyDYPK"                     
##  [76] "CTNNB1_NEGVATyAAAVLFR"              
##  [77] "GOT2_NLDKEyLPIGGLAEFCK"             
##  [78] "LCK_NLDNGGFyISPR"                   
##  [79] "CDKL5_NLSEGNNANYTEyVATR"            
##  [80] "PTPRC_NRyVDILPYDYNR"                
##  [81] "INPPL1_NSFNNPAyYVLEGVPHQLLPPEPPSPAR"
##  [82] "CASKIN2_NTyNQTALDIVNQFTTSQASR"      
##  [83] "CTNNA1_NVPILyTASQACLQHPDVAAYK"      
##  [84] "KIAA1217_NVyYELNDVR"                
##  [85] "MAPK11_QADEEMTGyVATR"               
##  [86] "CKS2_QIyYSDKYFDEHYEYR"              
##  [87] "FRK_QLLySENK"                       
##  [88] "PSMB5_RGPGLyYVDSEGNR"               
##  [89] "DSP_RGVITDQNSDGyCQTGTMSR"           
##  [90] "PRKCD_RsDSASSEPVGIyQGFEK"           
##  [91] "PRKCD_RSDsASSEPVGIyQGFEK"           
##  [92] "PRKCD_RSDSASSEPVGIyQGFEK"           
##  [93] "PRKCD_RSDSASSEPVGIyQGFEKK"          
##  [94] "ARHGEF5_RTEELIyLSQK"                
##  [95] "PRKCD_sDSASSEPVGIyQGFEK"            
##  [96] "PRKCD_SDsASSEPVGIyQGFEK"            
##  [97] "PRKCD_SDSASSEPVGIyQGFEK"            
##  [98] "PRKCD_SDSASSEPVGIyQGFEKK"           
##  [99] "IDH1_SDyLNTFEFMDK"                  
## [100] "RPA1_SENLGQGDKPDyFSSVATVVYLR"       
## [101] "MPZL1_SESVVyADIR"                   
## [102] "SRSF1_SHEGETAyIR"                   
## [103] "SRSF9_SHEGETSyIR"                   
## [104] "AFAP1L2_SLETSSyLNVLVNSQWK"          
## [105] "MPZL1_SLPSGSHQGPVIyAQLDHSGGHHSDK"   
## [106] "ANXA6_SLySMIK"                      
## [107] "C11orf52_SPGLMSEDSNLHyADIQVCSRPHAR" 
## [108] "PIK3R2_SREyDQLYEEYTR"               
## [109] "GSDMD_SRGDNVyVVTEVLQTQK"            
## [110] "AFAP1L2_SSSSDEEyIYMNK"              
## [111] "AFAP1L2_SSSSDEEYIyMNK"              
## [112] "IRS2_SYKAPYTCGGDSDQyVLMSSPVGR"      
## [113] "GDI2_TDDYLDQPCyETINR"               
## [114] "ARHGEF5_TEELIyLSQK"                 
## [115] "FLNA_THEAEIVEGENHTyCIR"             
## [116] "PRPF4B_TILKLCDFGSASHVADNDITPyLVSR"  
## [117] "CRKL_TLyDFPGNDAEDLPFKK"             
## [118] "ARPC1B_TQIAICPNNHEVHIyEK"           
## [119] "SPTBN1_TQILAASyELHK"                
## [120] "PIK3R1_TRDQyLMWLTQK"                
## [121] "CLTC_TSIDAyDNFDNISLAQR"             
## [122] "GARS1_TSyGWIEIVGCADR"               
## [123] "ACLY_TTDGVyEGVAIGGDRYPGSTFMDHVLR"   
## [124] "HIPK3_TVCSTyLQSR"                   
## [125] "TTN_VDQLQEGCSYyFR"                  
## [126] "MAP4K5_VGSGTyGDVYK"                 
## [127] "WASL_VIyDFIEK"                      
## [128] "FGFR4_VLLAVSEEyLDLR"                
## [129] "PSMB4_VNNSTMLGASGDyADFQYLK"         
## [130] "G6PD_VQPNEAVyTK"                    
## [131] "HGS_VVQDTyQIMK"                     
## [132] "LCP1_VyALPEDLVEVNPK"                
## [133] "ARHGEF5_VYLPYVTNQTyQER"             
## [134] "TNS3_WDsYENLSADGEVLHTQGPVDGSLyAK"   
## [135] "MYO1E_WTPIEyFNNK"                   
## [136] "ADSL_yASPEMCFVFSDR"                 
## [137] "KRT8_yEELQSLAGK"                    
## [138] "DSP_yGDGIQLTR"                      
## [139] "MYBPC1_yIFEHK"                      
## [140] "PTK2_yMEDSTYYK"                     
## [141] "PTK2_YMEDSTyYK"                     
## [142] "TRIOBP_YQDVyVELSHIK"                
## [143] "AFDN_YSLyEVHVSGER"                  
## [144] "MEMO1_YSYYDESQGEIyR"                
## [145] "RPSA_yVDIAIPCNNK"
message("Cluster 2")
## Cluster 2
names(h5cl_pY[h5cl_pY == 2])
##  [1] "RPSA_ADHQPLTEASyVNLPTIALCNTDSPLR"           
##  [2] "DCBLD2_AGKPGLPAPDELVyQVPQSTQEVSGAGR"        
##  [3] "PRAG1_EATQPEPIyAESTK"                       
##  [4] "PIK3R2_EYDQLyEEYTR"                         
##  [5] "GAB1_GDKQVEyLDLDLDSGK"                      
##  [6] "MAGI1_IEDPVyGIYYVDHINRK"                    
##  [7] "PLCG1_IGTAEPDyGALYEGR"                      
##  [8] "NCK1_LyDLNMPAYVK"                           
##  [9] "ARHGAP35_NEEENIySVPHDSTQGK"                 
## [10] "SF3B4_NQDATVyVGGLDEK"                       
## [11] "HCK_NRPEERPTFEYIQSVLDDFYTATESQyQQQP"        
## [12] "RET_RRDyLDLAAsTPSDSLIYDDGLSEEETPLVDCNNAPLPR"
## [13] "RET_RRDyLDLAASTPSDSLIYDDGLsEEETPLVDCNNAPLPR"
## [14] "PKP4_SAVSPDLHITPIyEGR"                      
## [15] "GAREM1_SELPyEELWLEEGKPSHQPLTR"              
## [16] "MTMR10_SGPLEACyGELGQSR"                     
## [17] "PKP4_STTNyVDFYSTK"                          
## [18] "LCK_SVLEDFFTATEGQyQPQP"                     
## [19] "SPRY4_TSHVENDyIDNPSLALTTGPK"                
## [20] "FYB1_TTAVEIDyDSLK"                          
## [21] "GAB1_VDyVVVDQQK"                            
## [22] "PTPRA_VVQEYIDAFSDyANFK"                     
## [23] "PTPN11_VyENVGLMQQQK"                        
## [24] "FRK_WKLEDYFETDSSySDANNFIR"                  
## [25] "RET_YPNDSVyANWMLSPSAAK"
message("Cluster 3")
## Cluster 3
names(h5cl_pY[h5cl_pY == 3])
##  [1] "GAB1_DASSQDCyDIPR"             "RET_DVYEEDSyVKR"              
##  [3] "ARHGEF5_DySTVSASPTALSTLK"      "ANKS1A_EEDEHPyELLLTAETK"      
##  [5] "TJP2_HPDIyAVPIK"               "CTNND1_HyEDGYPGGSDNYGSLSR"    
##  [7] "CTNND1_HYEDGYPGGSDNyGSLSR"     "TJP2_IEIAQKHPDIyAVPIK"        
##  [9] "EPB41L1_IRPGEyEQFESTIGFK"      "ROCK2_IyESIEEAK"              
## [11] "GAB1_KDASSQDCyDIPR"            "PRKCD_KTGVAGEDMQDNSGTyGK"     
## [13] "ERBB2_LLDIDETEyHADGGKVPIK"     "GAREM1_LSWPNHySGASESQTR"      
## [15] "CTNND1_NFHyPPDGYSR"            "GAREM1_QWTTITAHSLEEGHyVIGPK"  
## [17] "BCAR1_RPGPGTLyDVPR"            "GAREM1_SASySLESTDVK"          
## [19] "SORBS1_SIyEYQPGK"              "CDCP1_SPPESESEPyTFSHPNNGDVSSK"
## [21] "GAREM1_TDTNPSESTPVSCyPCNR"     "NEDD9_TGHGYVyEYPSR"           
## [23] "PRKCD_TGVAGEDMQDNSGTyGK"       "RET_VGPGyLGSGGSR"             
## [25] "PTK2B_YIEDEDyYKASVTR"          "PLCG1_yQQPFEDFR"
message("Cluster 4")
## Cluster 4
names(h5cl_pY[h5cl_pY == 4])
##   [1] "SLC25A5_AAyFGIYDTAK"                        
##   [2] "RET_ADGTNTGFPRyPNDSVYANWMLSPSAAK"           
##   [3] "ANK3_ADIVQQLLQQGASPNAATTSGyTPLHLSAR"        
##   [4] "EPS8_ADPPyTHTIQK"                           
##   [5] "PKP3_ADyDTLsLR"                             
##   [6] "PKP3_ADyDTLSLR"                             
##   [7] "KRT8_AEAESMYQIKyEELQSLAGK"                  
##   [8] "ANXA2_AEDGSVIDyELIDQDAR"                    
##   [9] "ANKRD39_AEDPSQPDSAGyTALHYASR"               
##  [10] "LYN_AEERPTFDYLQSVLDDFyTATEGQYQQQP"          
##  [11] "LYN_AEERPTFDYLQSVLDDFYTATEGQyQQQP"          
##  [12] "PKM_AEGSDVANAVLDGADCIMLSGETAKGDyPLEAVR"     
##  [13] "SRSF3_AFGyYGPLR"                            
##  [14] "GAB2_AGDNSQSVyIPMSPGAHHFDSLGYPSTTLPVHR"     
##  [15] "WRNIP1_AGEEHyNCISALHK"                      
##  [16] "NEK9_AGGGAAEQEELHyIPIR"                     
##  [17] "SRC_AGPLAGGVTTFVALyDYESR"                   
##  [18] "TNS1_AGSLPNyATINGK"                         
##  [19] "DNM2_AGVyPEKDQAENEDGAQENTFSMDPQLER"         
##  [20] "TSPAN6_AITNNQyEIV"                          
##  [21] "TMEM192_AKPEPDILEEEKIyAYPSNITSETGFR"        
##  [22] "H1_ALAAGGyDVEK"                             
##  [23] "CLTC_ALEHFTDLyDIKR"                         
##  [24] "GCHFR_ALGNNFyEYYVDDPPR"                     
##  [25] "LAMTOR1_ALNGAEPNyHSLPSAR"                   
##  [26] "TNK2_ALPQNDDHyVMQEHR"                       
##  [27] "ACAT2_APHLAyLR"                             
##  [28] "AK2_APSVPAAEPEyPK"                          
##  [29] "IRS2_APYTCGGDSDQyVLMSSPVGR"                 
##  [30] "EIF4B_ARPATDSFDDyPPR"                       
##  [31] "IRS2_ASSPAESSPEDSGyMR"                      
##  [32] "DCBLD2_ATGNQPPPLVGTyNTLLSR"                 
##  [33] "RNF20_AVEEQIEyLQK"                          
##  [34] "KIRREL1_AVLyADYR"                           
##  [35] "TYK2_AVPEGHEyYR"                            
##  [36] "GPRC5A_AYSQEEITQGFEETGDTLyAPYSTHFQLQNQPPQK" 
##  [37] "PSMA6_CDPAGyYCGFK"                          
##  [38] "HSPD1_CEFQDAyVLLSEK"                        
##  [39] "PLCG1_CIELDCWDGPDGMPVIyHGHTLTTK"            
##  [40] "PFN1_CyEMASHLR"                             
##  [41] "H4C1_DAVTyTEHAK"                            
##  [42] "SHB_DFEDPyNGPGSSLR"                         
##  [43] "SNX18_DGDKLCVVLGPYGPEWQENPyPFQCTIDDPTK"     
##  [44] "PXN_DGQPYCEKDyHNLFSPR"                      
##  [45] "S100A11_DGyNYTLSK"                          
##  [46] "S100A11_DGYNyTLSK"                          
##  [47] "FAM20B_DHVVEGEPyAGYDR"                      
##  [48] "PIK3C2A_DLVTEDGADPNPyVK"                    
##  [49] "ANXA2_DLyDAGVK"                             
##  [50] "AFAP1L2_DNHLHFyQDR"                         
##  [51] "LSR_DPHyDDFR"                               
##  [52] "PIK3R2_DQyLVWLTQK"                          
##  [53] "AP2B1_DSDyYNMLLK"                           
##  [54] "CCDC88A_DSNPyATLPR"                         
##  [55] "GLUD1_DSNyHLLMSVQESLER"                     
##  [56] "SSBP1_DVAyQYVK"                             
##  [57] "KRT8_DVDEAyMNKVELESR"                       
##  [58] "SLC12A2_DVVVSVEySK"                         
##  [59] "RET_DVYEEDSyVK"                             
##  [60] "KRT18_DWSHyFK"                              
##  [61] "RNF13_DyNIANTV"                             
##  [62] "CLASP2_DYNPyNYSDSISPFNK"                    
##  [63] "KRT19_DYSHyYTTIQDLR"                        
##  [64] "KRT19_DYSHYyTTIQDLR"                        
##  [65] "ITGB4_DySTLTSVSSHDSR"                       
##  [66] "PKM_EAEAAIyHLQLFEELR"                       
##  [67] "SPTBN1_EAVCEVALDyK"                         
##  [68] "DOCK7_EAYTAVVyHNR"                          
##  [69] "TLN2_ECDySIDGINR"                           
##  [70] "LYN_EEPIyIITEYMAK"                          
##  [71] "PLCG1_EHAFVASEyPVILSIEDHCSIAQQR"            
##  [72] "BAIAP2L1_EIEyVETVTSR"                       
##  [73] "LYN_EKAEERPTFDYLQSVLDDFYTATEGQyQQQP"        
##  [74] "PGK1_ELNyFAK"                               
##  [75] "DENND2B_ENPyEDVDLK"                         
##  [76] "CLTC_ENPyYDSR"                              
##  [77] "DDR1_EPPPyQEPRPR"                           
##  [78] "MATR3_EPPyRVPR"                             
##  [79] "PDCD6IP_EPSAPSIPTPAyQSSPAGGHAPTPPTPAPR"     
##  [80] "SHC1_ESTTTPGQyVLTGLQSGQPK"                  
##  [81] "ADAM10_ESyQMGHMR"                           
##  [82] "FAIM_ETFyVGAAK"                             
##  [83] "ADAM9_EVPIyANR"                             
##  [84] "EEPD1_EyIGGFK"                              
##  [85] "NHLRC2_FAGSGNEENRNNAyPHK"                   
##  [86] "APOBEC3F_FDDNyAFLHR"                        
##  [87] "PIN4_FGyHIIMVEGR"                           
##  [88] "CTNND1_FHPEPyGLEDDQR"                       
##  [89] "PDCD6IP_FIQQTYPSGGEEQAQyCR"                 
##  [90] "EPHB3_FLEDDPSDPTyTSSLGGK"                   
##  [91] "EPHB4_FLEENSSDPTyTSSLGGK"                   
##  [92] "NUDT21_FNFIyN"                              
##  [93] "SLC38A2_FSISPDEDSSSYSSNSDFNySYPTK"          
##  [94] "VPS29_GDFDENLNyPEQK"                        
##  [95] "ORAI1_GDHPLTPGSHyA"                         
##  [96] "PKM_GDyPLEAVR"                              
##  [97] "CNNM3_GGGDPySDLSK"                          
##  [98] "ANXA1_GGPGSAVSPyPTFNPSSDVAALHK"             
##  [99] "SLC7A11_GGyLQGNVNGR"                        
## [100] "PTPN11_GHEyTNIK"                            
## [101] "COPA_GHyNNVSCAVFHPR"                        
## [102] "MCM2_GLLyDSDEEDEERPAR"                      
## [103] "PIK3C2B_GLQLLQDGNDPDPyVK"                   
## [104] "DDR1_GNPPHSAPCVPNGSALLLSNPAyR"              
## [105] "CDCP1_GPAVGIyNDNINTEMPR"                    
## [106] "TNS2_GPLDGSPyAQVQRPPR"                      
## [107] "AXL_GQTPYPGVENSEIyDYLR"                     
## [108] "PKP3_GQyHTLQAGFSSR"                         
## [109] "TJP2_GRSIDQDyER"                            
## [110] "POF1B_GSHFFPGNNVIyEK"                       
## [111] "EGFR_GSHQISLDNPDyQQDFFPK"                   
## [112] "SRSF9_GSPHyFSPFRPY"                         
## [113] "EGFR_GSTAENAEyLR"                           
## [114] "ELP3_GTGLyELWK"                             
## [115] "STAT1_GTGyIKTELISVSEVHPSR"                  
## [116] "GPRC5C_GVGyETILK"                           
## [117] "DDX6_GVTQyYAYVTER"                          
## [118] "EIF2S1_GyIDLSK"                             
## [119] "HSPD1_GYISPyFINTSK"                         
## [120] "MDH2_GyLGPEQLPDCLK"                         
## [121] "PRPF8_GYLPSHyER"                            
## [122] "DSC2_HAQDyVLTYNYEGR"                        
## [123] "DSC2_HAQDYVLTyNYEGR"                        
## [124] "DSC2_HAQDYVLTYNyEGR"                        
## [125] "ATG101_HEyLPK"                              
## [126] "RASA1_HFTNPyCNIYLNSVQVAK"                   
## [127] "FRK_HGHyFVALFDYQAR"                         
## [128] "BCAR1_HLLAPGPQDIyDVPPVR"                    
## [129] "ESYT1_HLSPyATLTVGDSSHK"                     
## [130] "ACTN1_HRPELIDyGK"                           
## [131] "ILF3_HSSVyPTQEELEAVQNMVSHTER"               
## [132] "MAPK14_HTDDEMTGyVATR"                       
## [133] "ATP5PB_HyLFDVQR"                            
## [134] "SLC1A5_HyRGPAGDATVASEK"                     
## [135] "GOT1_IANDNSLNHEyLPILGLAEFR"                 
## [136] "APRT_IDyIAGLDSR"                            
## [137] "YTHDC1_IDyPPEFHQRPGYLKDPR"                  
## [138] "ENO1_IGAEVyHNLK"                            
## [139] "CDK1_IGEGTYGVVyKGR"                         
## [140] "NAXD_IGVVGGCQEyTGAPYFAAISALK"               
## [141] "KLF5_IHYCDyPGCTK"                           
## [142] "CRKL_IHyLDTTTLIEPAPR"                       
## [143] "CRK_IHyLDTTTLIEPVSR"                        
## [144] "TNK1_ILEHyQWDLSAASR"                        
## [145] "VCL_ILLRNPGNQAAyEHFETMK"                    
## [146] "ATP5F1B_IMDPNIVGSEHyDVAR"                   
## [147] "PIK3R2_IQGEyTLTLR"                          
## [148] "H4C1_ISGLIyEETR"                            
## [149] "TUBB_ISVyYNEATGGK"                          
## [150] "KCT2_ITNDyIF"                               
## [151] "CLTC_IyIDSNNNPER"                           
## [152] "PIK3C2B_IyLLPDPQK"                          
## [153] "SDC4_KAPTNEFyA"                             
## [154] "DNMT1_KEPVDEDLyPEHYR"                       
## [155] "PIK3R3_KLQEyHSQYQEK"                        
## [156] "PIK3CB_KQPyYYPPFDK"                         
## [157] "TSG101_KTAGLSDLy"                           
## [158] "MPZL2_KVSVyLEDTD"                           
## [159] "TXNRD1_KVVYENAyGQFIGPHR"                    
## [160] "DYRK1A_KVYNDGYDDDNyDYIVK"                   
## [161] "SGMS2_KYPDyIQIAMPTESR"                      
## [162] "SLC12A7_LANyTNLSQGVVEHEEDEESR"              
## [163] "GFPT1_LATELyHQK"                            
## [164] "PRPF4B_LCDFGSASHVADNDITPyLVSR"              
## [165] "SNX18_LCVVLGPYGPEWQENPyPFQCTIDDPTK"         
## [166] "ARHGAP42_LDTASSNGyQRPGSVVAAK"               
## [167] "ABL1_LGGGQYGEVyEGVWK"                       
## [168] "FTL_LGGPEAGLGEyLFER"                        
## [169] "DSP_LGIyEAMK"                               
## [170] "DHX9_LGyIHR"                                
## [171] "VARS1_LHEEGIIyR"                            
## [172] "PIK3R1_LHEyNTQFQEK"                         
## [173] "GMDS_LHyGDLTDSTCLVK"                        
## [174] "CTNNB1_LHyGLPVVVK"                          
## [175] "DDR1_LLLATyARPPR"                           
## [176] "PKM_LNFSHGTHEyHAETIK"                       
## [177] "ACTR3_LPACVVDCGTGyTK"                       
## [178] "UBA3_LPEHCIEyVR"                            
## [179] "NAALADL2_LQEESDyITHYTR"                     
## [180] "EPHB3_LQQyIAPGMK"                           
## [181] "LMNB1_LREyEAALNSK"                          
## [182] "CPD_LRQHHDEyEDEIR"                          
## [183] "PIK3CB_LTIHGKEDEVSPyDYVLQVSGR"              
## [184] "DDX17_LTPyEVDELRR"                          
## [185] "STAM2_LVNEAPVYSVySK"                        
## [186] "HSP90AB1_LVSSPCCIVTSTyGWTANMER"             
## [187] "FRS2_LVyENINGLSIPSASGVR"                    
## [188] "LYN_LyAVVTR"                                
## [189] "ANXA5_LYDAyELK"                             
## [190] "RET_LyGMSDPNWPGESPVPLTR"                    
## [191] "CPNE1_LyGPTNFAPIINHVAR"                     
## [192] "CPNE3_LyGPTNFSPIINHVAR"                     
## [193] "SDCBP_LyPELSQYMGLSLNEEEIR"                  
## [194] "SDCBP_LYPELSQyMGLSLNEEEIR"                  
## [195] "PLEC_LyVHEAVK"                              
## [196] "PIK3R1_MHGDyTLTLR"                          
## [197] "WRNIP1_MLEGGEDPLyVAR"                       
## [198] "LAPTM4A_MPEKEPPPPyLPA"                      
## [199] "RFFL_MQAYSNPGySSFPSPTGLEPSCK"               
## [200] "APLP2_MQNHGyENPTYK"                         
## [201] "APLP2_MQNHGYENPTyK"                         
## [202] "APP_MQQNGyENPTYK"                           
## [203] "LDHB_MVVESAyEVIK"                           
## [204] "CTNNA1_NAGNEQDLGIQyK"                       
## [205] "KIAA1217_NEGFYADPyLYHEGR"                   
## [206] "JUP_NEGTATyAAAVLFR"                         
## [207] "PTPN2_NESHDyPHR"                            
## [208] "TMEM106B_NGDVSQFPyVEFTGR"                   
## [209] "PLCG1_NGILYLEDPVNHEWyPHYFVLTSSK"            
## [210] "CSPG4_NGQyWV"                               
## [211] "SNF8_NGyVTVSEIK"                            
## [212] "LMO7_NHQLYCNDCyLR"                          
## [213] "NKD1_NHyLDLAGIENYTSQFGPGSPSVAQK"            
## [214] "DDR1_NLyAGDyYR"                             
## [215] "DDR1_NLyAGDYYR"                             
## [216] "DDR1_NLYAGDyYR"                             
## [217] "DDR2_NLySGDYYR"                             
## [218] "PLCG1_NMAQyFK"                              
## [219] "VCL_NPGNQAAyEHFETMK"                        
## [220] "GDI2_NPyYGGESASITPLEDLYK"                   
## [221] "GDI2_NPyYGGESASITPLEDLYKR"                  
## [222] "DLG1_NTSDFVyLK"                             
## [223] "LAPTM4A_NVPEIAVYPAFEAPPQyVLPTYEMAVK"        
## [224] "OCLN_NVSAGTQDVPSPPSDyVER"                   
## [225] "SLC4A1AP_NWEDEDFyDSDDDTFLDR"                
## [226] "SLC4A1AP_NWEDEDFyDSDDDTFLDRTGLIEK"          
## [227] "WDR18_NyISAWELQR"                           
## [228] "CAPN1_NyPATFWVNPQFK"                        
## [229] "GRB2_NyVTPVNR"                              
## [230] "ALDOA_PyQYPALTPEQK"                         
## [231] "ALDOA_PYQyPALTPEQK"                         
## [232] "MAPK12_QADSEMTGyVVTR"                       
## [233] "PDGFRA_QADTTQyVPMLER"                       
## [234] "TTYH3_QAHDSLyR"                             
## [235] "KRT18_QAQEyEALLNIK"                         
## [236] "GJA1_QASEQNWANySAEQNR"                      
## [237] "TMED7_QCFyEDIAQGTK"                         
## [238] "ANXA3_QDAQILyK"                             
## [239] "PKP1_QDPVyIPPISCNK"                         
## [240] "CTNND1_QDVyGPQPQVR"                         
## [241] "SYK_QESTVSFNPyEPELAPWAADK"                  
## [242] "SYK_QESTVSFNPyEPELAPWAADKGPQR"              
## [243] "SPTAN1_QGFVPAAyVK"                          
## [244] "RPTN_QGQSSHyIQSQTGEIQGQNK"                  
## [245] "CPD_QHHDEyEDEIR"                            
## [246] "CCT8_QITSYGETCPGLEQyAIKK"                   
## [247] "NUP93_QIyIYNEK"                             
## [248] "ACP1_QLIIEDPyYGNDSDFETVYQQCVR"              
## [249] "SPTBN1_QNLLSQSHAyQQFLR"                     
## [250] "FTH1_QNyHQDSEAAINR"                         
## [251] "PLEC_QQGLASyDYVR"                           
## [252] "MYH9_QRyEILTPNSIPK"                         
## [253] "EPHA2_QSPEDVyFSK"                           
## [254] "DPEP1_QTDSLVMVNFyNNYISCTNK"                 
## [255] "DPEP1_QTDSLVMVNFYNNyISCTNK"                 
## [256] "MPZ_QTPVLyAMLDHSR"                          
## [257] "HSPA8_QTQTFTTySDNQPGVLIQVYEGER"             
## [258] "SAPCD2_QVAPASGyLTFER"                       
## [259] "CAP1_QVAYIyK"                               
## [260] "LDHA_QVVESAyEVIK"                           
## [261] "ANXA2_RAEDGSVIDyELIDQDAR"                   
## [262] "RET_RDyLDLAASTPSDSLIYDDGLSEEETPLVDCNNAPLPR" 
## [263] "PQBP1_REELAPyPK"                            
## [264] "MCM2_RGLLyDSDEEDEERPAR"                     
## [265] "BRK1_RIEyIEAR"                              
## [266] "RET_RRDyLDLAASTPSDSLIYDDGLSEEETPLVDCNNAPLPR"
## [267] "CLDN4_SAAASNyV"                             
## [268] "DCP1A_SASPyHGFTIVNR"                        
## [269] "ITPA_SAyALCTFALSTGDPSQPVR"                  
## [270] "CX3CL1_SCGSNSyVLVPV"                        
## [271] "ENO1_SFIKDyPVVSIEDPFDQDDWGAWQK"             
## [272] "VCL_SFLDSGyR"                               
## [273] "UMPS_SGLSSPIyIDLR"                          
## [274] "SLC38A2_SHyADVDPENQNFLLESNLGK"              
## [275] "SLC38A2_SHyADVDPENQNFLLESNLGKK"             
## [276] "MRPL58_SIYSLDKLyPESQGSDTAWR"                
## [277] "CILK1_SKPPYTDyVSTR"                         
## [278] "LYN_SLDNGGyYISPR"                           
## [279] "LYN_SLDNGGYyISPR"                           
## [280] "ERBB3_SLEATDSAFDNPDyWHSR"                   
## [281] "ANXA11_SLyHDISGDTSGDYR"                     
## [282] "ANXA4_SLySFIK"                              
## [283] "FLNA_SPFEVyVDK"                             
## [284] "EPHB4_SQAKPGTPGGTGGPAPQy"                   
## [285] "PTBP3_SQPVyIQYSNHR"                         
## [286] "CTNND1_SQSSHSyDDSTLPLIDR"                   
## [287] "LSR_SRDDLyDQDDSRDFPR"                       
## [288] "TSPAN3_SRDPAyELLITGGTYA"                    
## [289] "GPRC5C_SSPEQSyQGDMYPTR"                     
## [290] "LSR_SSSAGGQGSyVPLLR"                        
## [291] "KRT18_STFSTNyR"                             
## [292] "CAPZB_STLNEIyFGK"                           
## [293] "AGPS_SVKEyVDPNNIFGNR"                       
## [294] "CLTC_SVNESLNNLFITEEDyQALR"                  
## [295] "TXNRD1_SYDyDLIIIGGGSGGLAAAK"                
## [296] "MAPK9_TACTNFMMTPyVVTR"                      
## [297] "EFNB2_TADSVFCPHyEK"                         
## [298] "TSG101_TAGLSDLy"                            
## [299] "VDAC1_TDEFQLHTNVNDGTEFGGSIyQK"              
## [300] "DCBLD2_TEGTyDLPYWDR"                        
## [301] "PRMT1_TGFSTSPESPyTHWK"                      
## [302] "PTK2_THAVSVSETDDyAEIIDEEDTYTMPSTR"          
## [303] "NUDT21_TINLyPLTNYTFGTK"                     
## [304] "NUDT5_TLHyECIVLVK"                          
## [305] "OSTF1_TLSNAEDyLDDEDSD"                      
## [306] "NIT2_TLSPGDSFSTFDTPyCR"                     
## [307] "CRKL_TLyDFPGNDAEDLPFK"                      
## [308] "H4C1_TLyGFGG"                               
## [309] "TLN1_TMQFEPSTMVyDACR"                       
## [310] "KIRREL1_TPyEAYDPIGK"                        
## [311] "KIRREL1_TPYEAyDPIGK"                        
## [312] "CXADR_TQyNQVPSEDFER"                        
## [313] "C8orf82_TREyFYYVDHQGQLFLDDSK"               
## [314] "LDLR_TTEDEVHICHNQDGySYPSR"                  
## [315] "EFNB1_TTENNyCPHYEK"                         
## [316] "EFNB1_TTENNYCPHyEK"                         
## [317] "SSH2_TTNPFyNTM"                             
## [318] "PSMB6_TTTGSyIANR"                           
## [319] "EPHB3_TVPDyTTFTTVGDWLDAIK"                  
## [320] "H4C1_TVTAMDVVyALKR"                         
## [321] "EPHA4_TyVDPFTYEDPNQAVR"                     
## [322] "EPHA2_TyVDPHTYEDPNQAVLK"                    
## [323] "EPHA2_TYVDPHTyEDPNQAVLK"                    
## [324] "MAPK1_VADPDHDHTGFLTEyVATR"                  
## [325] "ITGB4_VCAYGAQGEGPySSLVSCR"                  
## [326] "HGS_VCEPCyEQLNR"                            
## [327] "SDCBP_VDKVIQAQTAFSANPANPAILSEASAPIPHDGNLyPR"
## [328] "SEC62_VDyFIASK"                             
## [329] "CALM1_VFDKDGNGyISAAELR"                     
## [330] "EFHD2_VFNPyTEFK"                            
## [331] "HBA1_VGAHAGEyGAEALER"                       
## [332] "LLGL1_VGCFDPySDDPR"                         
## [333] "PXN_VGEEEHVySFPNK"                          
## [334] "G6PD_VGFQyEGTYK"                            
## [335] "CRYZ_VHACGVNPVETyIR"                        
## [336] "FGFRL1_VHQHIHyQC"                           
## [337] "DCTN2_VHQLyETIQR"                           
## [338] "FLNA_VHSPSGALEECyVTEIDQDKYAVR"              
## [339] "FLNA_VHSPSGALEECYVTEIDQDKyAVR"              
## [340] "SDCBP_VIQAQTAFSANPANPAILSEASAPIPHDGNLyPR"   
## [341] "DSG2_VIQPHGGGSNPLEGTQHLQDVPyVMVR"           
## [342] "EPHA2_VLEDDPEATyTTSGGK"                     
## [343] "EPHA2_VLEDDPEATyTTSGGKIPIR"                 
## [344] "GDI2_VLHMDRNPyYGGESASITPLEDLYK"             
## [345] "LSR_VLyYMEK"                                
## [346] "PEAK1_VPIVINPNAyDNLAIYK"                    
## [347] "GPRC5C_VPsEGAyDIILPR"                       
## [348] "GPRC5C_VPSEGAyDIILPR"                       
## [349] "ITGB4_VPSVELTNLYPyCDYEMK"                   
## [350] "FER_VQENDGKEPPPVVNyEEDAR"                   
## [351] "EPS8L1_VRDPAGQEGYVPyNILTPYPGPR"             
## [352] "MPZL2_VSVyLEDTD"                            
## [353] "ALDH9A1_VTIEyYSQLK"                         
## [354] "ATIC_VVACNLyPFVK"                           
## [355] "NUCKS1_VVDYSQFQESDDADEDyGR"                 
## [356] "DDX1_VWyHVCSSR"                             
## [357] "DSG2_VyAPASTLVDQPYANEGTVVVTER"              
## [358] "DSG2_VYAPASTLVDQPyANEGTVVVTER"              
## [359] "SOCS6_VyDSVQSSGPMVVTSLTEELKK"               
## [360] "FLNA_VyGPGVAK"                              
## [361] "PIK3R2_VyHQQYQDK"                           
## [362] "DSC2_VyLCNQDENHK"                           
## [363] "DSC2_VYLCNQDENHKHAQDyVLTYNYEGR"             
## [364] "DYRK1A_VYNDGYDDDNyDYIVK"                    
## [365] "EPS8L1_VySQVTVQR"                           
## [366] "CDK1_VyTHEVVTLWYR"                          
## [367] "VDAC2_WCEyGLTFTEK"                          
## [368] "ITGB1_WDTGENPIyK"                           
## [369] "EPHA2_WTAPEAISyR"                           
## [370] "VDAC1_WTEyGLTFTEK"                          
## [371] "SERINC5_yAAPELEIAR"                         
## [372] "PDGFRB_YADIESSNYMAPYDNyVPSAPER"             
## [373] "S100A11_YAGKDGyNYTLSK"                      
## [374] "VTA1_yAGSALQYEDVSTAVQNLQK"                  
## [375] "WDR1_YAPSGFyIASGDVSGK"                      
## [376] "TNK2_yATPQVIQAPGPR"                         
## [377] "TTYH2_yENVPLIGR"                            
## [378] "CORO1C_YFEITDESPyVHYLNTFSSK"                
## [379] "PDGFRB_YGDLVDyLHR"                          
## [380] "HNRNPA2B1_yHTINGHNAEVR"                     
## [381] "MCAM_yIDLRH"                                
## [382] "PTPN11_yKNILPFDHTR"                         
## [383] "PSMA6_yKYGYEIPVDMLCK"                       
## [384] "YWHAE_yLAEFATGNDR"                          
## [385] "YWHAZ_yLAEVAAGDDKK"                         
## [386] "YWHAQ_yLAEVACGDDR"                          
## [387] "YWHAG_yLAEVATGEK"                           
## [388] "TTYH3_yLATSQPRPDSSGSH"                      
## [389] "TOP2A_yLEESDEDDLF"                          
## [390] "APLP2_yLEQMQI"                              
## [391] "USP14_yLFTGLK"                              
## [392] "EPHB3_YLSEMNyVHR"                           
## [393] "YWHAB_yLSEVASGDNK"                          
## [394] "PTK2_YMEDSTyYKASK"                          
## [395] "LCP1_yPALHKPENQDIDWGALEGETR"                
## [396] "ATP5PD_yPYWPHQPIENL"                        
## [397] "PDGFRB_yQQVDEEFLR"                          
## [398] "YES1_YRPENTPEPVSTSVSHyGAEPTTVSPCPSSSAK"     
## [399] "ADGRE5_ySEFTSTTSGTGHNQTR"                   
## [400] "PKP3_YSLVSEQLEPAATSTyR"                     
## [401] "ACTR3_ySYVCPDLVK"                           
## [402] "RACK1_yTVQDESHSEWVSCVR"                     
## [403] "CAV1_yVDSEGHLYTVPIR"                        
## [404] "CAV1_YVDSEGHLyTVPIR"                        
## [405] "AXL_yVLCPSTTPSPAQPADR"                      
## [406] "TEC_YVLDDQyTSSSGAK"                         
## [407] "PTPRA_yVNILPYDHSR"                          
## [408] "LHPP_yYKETSGLMLDVGPYMK"                     
## [409] "TARBP1_YyVNSLQHR"                           
## [410] "NDUFB10_YyYYHR"
message("Cluster 5")
## Cluster 5
names(h5cl_pY[h5cl_pY == 5])
##  [1] "PLCG1_ACyRDMSSFPETK"                "NCOA4_ANEPCTsFAECVCDENCEKEALyK"    
##  [3] "GRB2_DIEQVPQQPTyVQALFDFDPQEDGELGFR" "RET_DVyEEDSYVK"                    
##  [5] "RET_DVyEEDsYVKR"                    "RET_DVyEEDSYVKR"                   
##  [7] "RIN1_EKPAQDPLyDVPNASGGQAGGPQRPGR"   "SHC1_ELFDDPSyVNVQNLDK"             
##  [9] "JAK2_EVGDyGQLHETEVLLK"              "PIK3R2_EYDQLYEEyTR"                
## [11] "PGAM1_FSGWyDADLSPAGHEEAK"           "PGAM1_FSGWyDADLSPAGHEEAKR"         
## [13] "MAPK3_IADPEHDHTGFLtEyVATR"          "PLCG1_NPGFyVEANPMPTFK"             
## [15] "JAK2_REVGDyGQLHETEVLLK"             "DSP_SAIyQLEEEYENLLK"               
## [17] "CILK1_SKPPYtDyVSTR"                 "GAB1_SSGSGSSVADERVDyVVVDQQK"       
## [19] "MAPK1_VADPDHDHTGFLtEyVATR"          "VAV1_VGWFPANYVEEDYSEyC"            
## [21] "HSPE1_VLLPEyGGTK"

Xenografts - pY

train the SOM

som.pat <- Train_SOM(phos_mat= pY_mat_Set2, try.k = 2:15)

som.model.pat <- som.pat[[1]]
som.events.pat <- som.pat[[2]]

evaluate clustering algorithms

## Having selected a reasonable value for k, evaluate different clustering algorithms.

## Define a function for make a simple plot of clustering output.
## This is the same as previousl plotting, but we define the function
## here as we wanted to play with the color earlier.

## Try several different clustering algorithms, and, if desired, different values for k

cluster.tries.pat.pY <- list()
for(k in c(5,6,7)){
  message(paste(k, "clusters"))
  ## k-means clustering
  som.cluster.k <- kmeans(som.events.pat, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
  
  ## hierarchical clustering
  som.dist.pat <- dist(som.events.pat) # hierarchical, step 1
  som.cluster.h <- cutree(hclust(som.dist.pat), k = k) # hierarchical, step 2
  
  ## capture outputs
  cluster.tries.pat.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
  cluster.tries.pat.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}
## 5 clusters
## 6 clusters
## 7 clusters

Hierarchical

## Take a look at the various clusters.  You're looking for the algorithm that produces the
## least fragmented clusters.
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)

Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)

Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.7)

Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               4                               2 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               4                               2 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               3                               5 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               1                               5 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               4                               3 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               1                               2 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               4                               2 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               5                               2 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               5
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               4                               5 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               4                               5 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               3                               6 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               1                               6 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               4                               3 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               1                               2 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               4                               5 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               6                               2 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               6
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.7)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               4                               6 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               5                               6 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               3                               7 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               1                               7 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               4                               3 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               1                               2 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               4                               6 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               7                               2 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               7
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.5)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
##      ctrl 0 2 0 1 0
##      E    1 1 2 0 0
##      EBC  0 0 0 1 4
##      EC   1 2 0 2 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.6)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
##      ctrl 0 0 0 1 2 0
##      E    1 1 2 0 0 0
##      EBC  0 0 0 1 0 4
##      EC   1 1 0 2 1 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.7)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6 7
##      ctrl 0 0 0 1 0 2 0
##      E    1 1 2 0 0 0 0
##      EBC  0 0 0 1 0 0 4
##      EC   1 1 0 1 1 1 0
Confusion_Matrix_Prep(cluster.tries.pat.pY$som.cluster.h.5)
##                                          prep
## Asign_To_Clusters(som.model.pat, cluster) prep1 prep2
##                                         1     0     2
##                                         2     0     5
##                                         3     0     2
##                                         4     1     3
##                                         5     0     4

k-means

Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5, cl=7)

Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6, cl=7)

Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.7, cl=7)

Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               3                               5 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               2                               3 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               4                               1 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               2                               1 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               3                               4 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               2                               5 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               3                               3 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               1                               5 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               1
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               4                               2 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               1                               2 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               5                               3 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               1                               3 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               4                               5 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               1                               6 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               4                               2 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               3                               6 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               3
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.7)
##  log2FC_Xenograft_EBC_5d_4_Set2 log2FC_Xenograft_ctrl_5d_7_Set2 
##                               6                               5 
##   log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_ctrl_5d_5_Set2 
##                               1                               5 
##    log2FC_Xenograft_E_5d_2_Set2  log2FC_Xenograft_EBC_5d_3_Set2 
##                               2                               7 
##    log2FC_Xenograft_E_5d_3_Set2  log2FC_Xenograft_EBC_5d_2_Set2 
##                               4                               7 
## log2FC_Xenograft_ctrl_5d_3_Set2    log2FC_Xenograft_E_5d_4_Set2 
##                               6                               2 
##   log2FC_Xenograft_EC_5d_4_Set2    log2FC_Xenograft_E_5d_5_Set2 
##                               4                               3 
##   log2FC_Xenograft_EC_5d_2_Set2   log2FC_Xenograft_EC_5d_1_Set2 
##                               6                               5 
##  log2FC_Xenograft_EBC_5d_1_Set2   log2FC_Xenograft_EC_5d_5_Set2 
##                               7                               3 
##  log2FC_Xenograft_EBC_5d_5_Set2 
##                               7
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.5)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
##      ctrl 0 0 2 0 1
##      E    0 1 0 2 1
##      EBC  4 0 1 0 0
##      EC   0 2 2 0 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.6)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
##      ctrl 0 2 0 1 0 0
##      E    1 0 0 0 2 1
##      EBC  0 0 4 1 0 0
##      EC   2 1 0 1 0 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.7)
##          Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6 7
##      ctrl 0 0 0 0 2 1 0
##      E    0 2 1 1 0 0 0
##      EBC  0 0 0 0 0 1 4
##      EC   1 0 1 1 1 1 0

Session Info

sessionInfo()
## R version 4.1.3 (2022-03-10)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur/Monterey 10.16
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] forcats_0.5.2               stringr_1.4.1              
##  [3] dplyr_1.0.10                purrr_0.3.5                
##  [5] readr_2.1.3                 tidyr_1.2.1                
##  [7] tibble_3.1.8                ggplot2_3.3.6              
##  [9] tidyverse_1.3.2             kohonen_3.0.11             
## [11] mdatools_0.13.0             SummarizedExperiment_1.24.0
## [13] GenomicRanges_1.46.1        GenomeInfoDb_1.30.1        
## [15] MatrixGenerics_1.6.0        matrixStats_0.62.0         
## [17] DEP_1.16.0                  org.Hs.eg.db_3.14.0        
## [19] AnnotationDbi_1.56.2        IRanges_2.28.0             
## [21] S4Vectors_0.32.4            Biobase_2.54.0             
## [23] BiocGenerics_0.40.0         fgsea_1.20.0               
## 
## loaded via a namespace (and not attached):
##   [1] utf8_1.2.2             shinydashboard_0.7.2   proto_1.0.0           
##   [4] gmm_1.7                tidyselect_1.2.0       RSQLite_2.2.18        
##   [7] htmlwidgets_1.5.4      grid_4.1.3             BiocParallel_1.28.3   
##  [10] norm_1.0-10.0          munsell_0.5.0          codetools_0.2-18      
##  [13] preprocessCore_1.56.0  chron_2.3-58           DT_0.26               
##  [16] withr_2.5.0            colorspace_2.0-3       highr_0.9             
##  [19] knitr_1.40             rstudioapi_0.14        ggsignif_0.6.4        
##  [22] mzID_1.32.0            labeling_0.4.2         GenomeInfoDbData_1.2.7
##  [25] farver_2.1.1           bit64_4.0.5            vctrs_0.5.0           
##  [28] generics_0.1.3         xfun_0.34              R6_2.5.1              
##  [31] doParallel_1.0.17      ggbeeswarm_0.6.0       clue_0.3-62           
##  [34] MsCoreUtils_1.6.2      bitops_1.0-7           cachem_1.0.6          
##  [37] DelayedArray_0.20.0    assertthat_0.2.1       promises_1.2.0.1      
##  [40] scales_1.2.1           googlesheets4_1.0.1    beeswarm_0.4.0        
##  [43] gtable_0.3.1           affy_1.72.0            sandwich_3.0-2        
##  [46] rlang_1.0.6            mzR_2.28.0             GlobalOptions_0.1.2   
##  [49] splines_4.1.3          rstatix_0.7.0          gargle_1.2.1          
##  [52] impute_1.68.0          broom_1.0.1            abind_1.4-5           
##  [55] BiocManager_1.30.19    yaml_2.3.6             modelr_0.1.9          
##  [58] backports_1.4.1        httpuv_1.6.6           tools_4.1.3           
##  [61] affyio_1.64.0          ellipsis_0.3.2         gplots_3.1.3          
##  [64] jquerylib_0.1.4        RColorBrewer_1.1-3     STRINGdb_2.6.5        
##  [67] MSnbase_2.20.4         gsubfn_0.7             Rcpp_1.0.9            
##  [70] hash_2.2.6.2           plyr_1.8.7             zlibbioc_1.40.0       
##  [73] RCurl_1.98-1.9         ggpubr_0.4.0           sqldf_0.4-11          
##  [76] GetoptLong_1.0.5       zoo_1.8-11             haven_2.5.1           
##  [79] cluster_2.1.4          fs_1.5.2               magrittr_2.0.3        
##  [82] data.table_1.14.4      circlize_0.4.15        reprex_2.0.2          
##  [85] googledrive_2.0.0      pcaMethods_1.86.0      mvtnorm_1.1-3         
##  [88] ProtGenerics_1.26.0    hms_1.1.2              mime_0.12             
##  [91] evaluate_0.17          xtable_1.8-4           XML_3.99-0.12         
##  [94] readxl_1.4.1           gridExtra_2.3          shape_1.4.6           
##  [97] compiler_4.1.3         KernSmooth_2.23-20     ncdf4_1.19            
## [100] crayon_1.5.2           htmltools_0.5.3        mgcv_1.8-41           
## [103] later_1.3.0            tzdb_0.3.0             lubridate_1.8.0       
## [106] DBI_1.1.3              dbplyr_2.2.1           ComplexHeatmap_2.10.0 
## [109] MASS_7.3-58.1          tmvtnorm_1.5           car_3.1-1             
## [112] Matrix_1.5-1           permute_0.9-7          cli_3.4.1             
## [115] vsn_3.62.0             imputeLCMD_2.1         parallel_4.1.3        
## [118] igraph_1.3.5           pkgconfig_2.0.3        MALDIquant_1.21       
## [121] xml2_1.3.3             foreach_1.5.2          vipor_0.4.5           
## [124] bslib_0.4.0            XVector_0.34.0         rvest_1.0.3           
## [127] digest_0.6.30          vegan_2.6-4            Biostrings_2.62.0     
## [130] rmarkdown_2.17         cellranger_1.1.0       fastmatch_1.1-3       
## [133] shiny_1.7.3            gtools_3.9.3           rjson_0.2.21          
## [136] lifecycle_1.0.3        nlme_3.1-160           jsonlite_1.8.3        
## [139] carData_3.0-5          limma_3.50.3           fansi_1.0.3           
## [142] pillar_1.8.1           lattice_0.20-45        KEGGREST_1.34.0       
## [145] fastmap_1.1.0          httr_1.4.4             plotrix_3.8-2         
## [148] glue_1.6.2             png_0.1-7              iterators_1.0.14      
## [151] bit_4.0.4              stringi_1.7.8          sass_0.4.2            
## [154] blob_1.2.3             caTools_1.18.2         memoise_2.0.1
knitr::knit_exit()